home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / cbibcode.arc / LONGJMP.C < prev    next >
Encoding:
C/C++ Source or Header  |  1991-08-05  |  535 b   |  24 lines

  1. /* longjmp.c --- BIBLE pp. 87-88 */
  2. #include <stdio.h>
  3. #include <setjmp.h>
  4. static jmp_buf mark_place;
  5. static void call_longjmp(void);
  6. main()
  7. {
  8.     int rvalue;
  9.     rvalue = setjmp(mark_place);
  10.     if(rvalue != 0)
  11.     {
  12.         printf("Second return from \"setjmp\" induced by call "
  13.                                                 "to \"longjmp\"\n");
  14.         printf("Return value = %d\n");
  15.         exit(rvalue);
  16.     }
  17.     printf("Calling \"longjmp\" next...\n");
  18.     call_longjmp();
  19. }
  20.                 /* ------------------------------- */
  21. static void call_longjmp(void)
  22. {
  23.     longjmp(mark_place, 3);
  24. }